
#ifndef _CPU_DELAY_H__
#define _CPU_DELAY_H__


/**
  * @brief  初始化时间戳
  * @param  无
  * @retval 无
  * @note   使用延时函数前，必须调用本函数
  */
void CPU_InitTick(void);

/**
  * @brief  读取当前时间戳
  * @param  无
  * @retval 当前时间戳，即DWT_CYCCNT寄存器的值
  */
uint32_t CPU_Tick(void);


/**
  * @brief  节拍转换微秒
  * @param  tick，节拍值
  * @retval 微秒值
  */
uint32_t CPU_TickToUs(uint32_t tick);

/**
  * @brief   计算最大延时
  * @param 无
  * @retval 最大延时，单位1us
  */
uint32_t CPU_MaxDelay(void);

/**
  * @brief  采用CPU的内部计数实现精确延时，32位计数器
  * @param  us : 延迟长度，单位1 us
  * @retval 无
  * @note   
  */
void CPU_Delay(uint32_t us);

#endif



